<%-- 
    Document   : validar_venta
    Created on : Jul 7, 2011, 6:26:23 PM
    Author     : T
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="bd.*" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <%
                HttpSession sesion = request.getSession(false);
                if(!(sesion.getAttribute("Nombre")==null))
                {
                    out.println("<a href=\"CerrarSesion.jsp\"><span>Cerrar Sesion</span></a> <h6>"+session.getAttribute("Nombre")+"</h6>");                    
                }
                else
                {
                    response.sendRedirect("inicio.jsp");
                }
                String str = "";
            %>
        <title>Envio</title>
    </head>
    <body>
        <%
        if(session.getAttribute("Nombre")!=null)
           {                       
            consulta consul = new consulta();            
            
            //obtiene datos enviados por el formulario de la pagina de ver_almacen.jsp
            String vendedor = session.getAttribute("Nombre").toString();
            String comprador = request.getParameter("comprador").trim();
            String producto = request.getParameter("producto").trim();
            String cantidad = request.getParameter("cantidad").trim();  
                  
            int tipo_producto = Integer.parseInt(producto);             
                             
            //verifica que no vengan campos en blanco
            if((comprador.length()==0)||(producto.length()==0)||(cantidad.length()==0)){
                response.sendRedirect("ver_almacen.jsp?error=faltainf");            
            }else{
                //verifica que no sea el mismo vendedor y comprador
                if (vendedor.equalsIgnoreCase(comprador)){
                    response.sendRedirect("ver_almacen.jsp?error=mismo_user");            
                }else{

               //verifica que el comprador exista
               boolean existe = consul.buscarUsuario(comprador);
               if (existe){                   
                   //try para verificar que la cantidad ingresada sea un numero y sea una cantidad valida
                    try{                        
                        usuario user = consul.getUsuario((session.getAttribute("Nombre")+""));
                        granja tierra = user.getGranja();
                        int num_cantidad = Integer.parseInt(cantidad);
                        //verifica que la cantidad que se desea vender sea menor o igual a la 
                        //que se tiene disponible               
                        System.out.println("COMPARANDO, TIENE:"+tierra.getCantidadAlmacenado(tipo_producto)+"-PIDE:"+ num_cantidad + " -es:"+cantidad);
                        if (num_cantidad<=tierra.getCantidadAlmacenado(tipo_producto)){
                            /************* ejecuta el WS**************/             
                                                          
                            str = consul.enviarI(vendedor, comprador, tipo_producto, num_cantidad);
                            
                                if(str.equals("error")){
                                    str = "NO SE HA ENVIADO, CONSULTE SU SALDO!!";                                    
                                }else if(str.equals("")){
                                    str = "ERROR AL COMUNICARSE CON TRANSPORTE!!";
                                }else {
                                    out.println("");//ok                    
                                }
                                
                                out.println("<a href=\"ver_almacen.jsp\"><span>regresar al almacen!</span></a>");
                            
                            /****************** WS ************************/
                        }else{
                            request.setAttribute("cantidad", cantidad);
                            //si no existe suficiente mostrara un error en la pagina de almacenamiento
                            response.sendRedirect("ver_almacen.jsp?error=producto_insuficiente");
                        }                        
                    }catch(Exception e){
                        //cantidad de producto es invalida
                        response.sendRedirect("ver_almacen.jsp?error=info_invalida");
                    }
                         
               }else{
                   //no existe por lo que redirecciona a la pagina de almacenamiento 
                   // indicando que el usuario al que desea vender no existe
                   response.sendRedirect("ver_almacen.jsp?error=no_user");            
               }
               
                             }////
            }
            
            
            }
        %>
        <h1>
            <% out.println(str);
                %> 
        </h1>
    </body>
</html>
